iT邦幫忙

2024 iThome 鐵人賽

DAY 29
0
自我挑戰組

菜鳥AI工程師給碩班學弟妹的挑戰系列 第 29

[Day 29] fine-tune及量化基礎觀念

  • 分享至 

  • xImage
  •  

前情提要: 昨天稍微提到了模型蒸餾的概念,目的就是為了壓縮模型的大小增加速度。

今天來提提Finetune及一些量化的東西吧。

github參考:
https://github.com/unslothai/unsloth
https://github.com/pytorch/torchtune
https://github.com/huggingface/peft

1. LoRA基礎觀念

在torchtune當中有提到Full finetune, LoRA, QLoRA,我們一般的fine-tune通常會對整個模型的參數進行微調,那LoRA跟QLoRA則使用了一些技術,降低微調的成本並且精準度不會差到哪裡去。
蠻多新的fine-tune技術,不只LoRA還有DoRA一些,但比較常看到是LoRA跟QLoRA。

觀念參考:
https://blog.csdn.net/Janexjy/article/details/139709200
https://blog.csdn.net/deephub/article/details/136735670

這裡大概敘述LoRA原理,原先模型的全部參數是W,但我們並不更新原先參數,而是多加了A(d x r)跟B(r x k)這兩個矩陣,如果把AB做矩陣相乘,那麼就會得到d x k的大小,就跟原先的W一樣,那我就做相加的動作,進而達到改變原始參數的效果,但因為只多了A跟B兩個的參數其實非常少,所以GPU開銷會低得多,所以常會看到在顯卡24G可以fine-tune LLM,就是用了這類繼續。
https://ithelp.ithome.com.tw/upload/images/20240902/20168446txJi8lRABy.png

2. 量化基礎觀念

觀念參考: https://medium.com/@averyaveavi/%E6%B7%BA%E8%AB%87deeplearning%E7%9A%84%E6%B5%AE%E9%BB%9E%E6%95%B8%E7%B2%BE%E5%BA%A6fp32-fp16-tf32-bf16-%E4%BB%A5llm%E7%82%BA%E4%BE%8B-9bfb475e50be
github參考: https://github.com/Macaronlin/LLaMA3-Quantization
量化也是一個將模型縮小增加速度的方法,他的簡單概念是透過將參數精度轉換,一定常看到float32, float16, bfloat16, int8, int4這些,透過較低的精度來加快模型運算速度,在github上的圖表有一系列的評分,可以參考一下目前使用的方法。

這部分一樣我沒有過多的研究,也沒有去實作,只是提個概念讓碩班知道而已,如果有興趣或研究方向是這個,可以參照上面的github,unsloth或torchrun都算蠻主流的。

今天就先到這裡囉~ 明天就完賽感言了 QQ


上一篇
[Day 28] 模型蒸餾觀念介紹
下一篇
[Day 30] 完賽感言
系列文
菜鳥AI工程師給碩班學弟妹的挑戰30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言